<?php
//
//http://101.42.11.186:6666/GatewayWorker/Applications/YourApp/test.php?uid=
//http://101.42.11.186:6666/GatewayWorker/Applications/YourApp/test.php?uid=jd_UanPlMeeQoyd&sid=jd&message=68695036617
$message = isset($_REQUEST["message"]) ? $_REQUEST["message"] : "";
$uid     = isset($_REQUEST["uid"]) ? $_REQUEST["uid"] : "";
$sid     = isset($_REQUEST["sid"]) ? $_REQUEST["sid"] : "";

// $type     = isset($_REQUEST["type"]) ? $_REQUEST["type"] : "";

if(!$message || !$uid|| !$sid){
    echo '{"code":"1","msg":"key nil"}';
    return;
}

use GatewayClient\Gateway;
require_once __DIR__ .  '/../../GatewayClient/Gateway.php';

// 设置GatewayWorker服务的Register服务ip和端口，请根据实际情况改成实际值(ip不能是0.0.0.0)
Gateway::$registerAddress = '127.0.0.1:1238';

if(! Gateway::isUidOnline($uid)){
    echo '{"code":"2","msg":"Online","uid":"'.$uid.'","sid":"'.$sid.'"}';
    return;
}



// $uid = "7f0000010b5400000004";
// $message = "00000000000000000000000000";
// 向任意uid的网站页面发送数据
// Gateway::sendToAll($message);
// Gateway::sendToClient($uid, $message);
$ret = Gateway::sendToUid($uid, json_encode(array(
            'type'      => 'sendMsg',
            'sid' => $sid,
            'myuserid' => $uid,
            'content' => $message
        )));
echo '{"code":"0","msg":"success"}';
// 向任意群组的网站页面发送数据
// Gateway::sendToGroup($group, $message);

/**
 * 用于检测业务代码死循环或者长时间阻塞等问题
 * 如果发现业务卡死，可以将下面declare打开（去掉//注释），并执行php start.php reload
 * 然后观察一段时间workerman.log看是否有process_timeout异常
 */
//declare(ticks=1);

// use \GatewayWorker\Lib\Gateway;
// $client_id = "7f0000010b5400000003";
//         // 向当前client_id发送数据 
        // Gateway::sendToClient($client_id, "Hello $client_id\r\n");
//         // 向所有人发送
// Gateway::sendToAll("$client_id login\r\n");

/**
 * 主逻辑
 * 主要是处理 onConnect onMessage onClose 三个方法
 * onConnect 和 onClose 如果不需要可以不用实现并删除
 */
// class Events
// {
//     /**
//      * 当客户端连接时触发
//      * 如果业务不需此回调可以删除onConnect
//      * 
//      * @param int $client_id 连接id
//      */
//     public static function onConnect($client_id)
//     {
//         // 向当前client_id发送数据 
//         Gateway::sendToClient($client_id, "Hello $client_id\r\n");
//         // 向所有人发送
//         Gateway::sendToAll("$client_id login\r\n");
//     }
    
//   /**
//     * 当客户端发来消息时触发
//     * @param int $client_id 连接id
//     * @param mixed $message 具体消息
//     */
//   public static function onMessage($client_id, $message)
//   {
//         // 向所有人发送 
//         Gateway::sendToAll("$client_id said $message\r\n");
//   }
   
//   /**
//     * 当用户断开连接时触发
//     * @param int $client_id 连接id
//     */
//   public static function onClose($client_id)
//   {
//       // 向所有人发送 
//       GateWay::sendToAll("$client_id logout\r\n");
//   }
// }
